package br.edu.universo.si.projeto2.infojob.server.persistencia;


import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import br.edu.universo.si.projeto2.infojob.client.bean.BeanNacionalidade;
import br.edu.universo.si.projeto2.infojob.server.Database;

/**
 * Classe de persistência de nacionalidade. 
 * @author Andrey A. de Oliveira
 */
public class PNacionalidade
{

	/**
	 * Busca todas as nacionalidades. 
	 * @author Andrey A. de Oliveira
	 * @return List<BeanNacionalidade> : lista com todas as nacionalidades.
	 * @throws ClassNotFoundException
	 * @throws Exception
	 */
	public static List<BeanNacionalidade> getNacionalidades() throws ClassNotFoundException, Exception 
	{
		List<BeanNacionalidade> nacionalidades = new ArrayList<BeanNacionalidade>();
		
		Database database = Database.getInstance();
		Statement stm = database.getStatement();
		
		String query = "SELECT * FROM infojob.tb_nacionalidade";
		
	    ResultSet rs = stm.executeQuery(query);

	    while(rs.next())
	    {
	    	BeanNacionalidade bnac = new BeanNacionalidade();
	    	bnac.setId(rs.getInt("id"));
	    	bnac.setNacionalidade(rs.getString("nacionalidade"));
	    	nacionalidades.add(bnac);
	    }

		return nacionalidades;
	}

	/**
	 * Busca nacionalidade pelo ID.
	 * @author Andrey A. de Oliveira
	 * @param idNacionalidade
	 * @return BeanNacionalidade
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public static BeanNacionalidade getNacionalidadeById(Integer idNacionalidade) throws ClassNotFoundException, SQLException
	{
		Database database = Database.getInstance();

		PreparedStatement pStmt = database.getPreparedStatement("SELECT * FROM infojob.tb_nacionalidade WHERE id = ?; ");
		
		pStmt.setInt(1, idNacionalidade);
		
		ResultSet rs = pStmt.executeQuery();
		
		if (rs.next())
		{
			BeanNacionalidade bNacionalidade = new BeanNacionalidade();

			bNacionalidade.setId(rs.getInt("id"));
			bNacionalidade.setNacionalidade(rs.getString("nacionalidade"));

			return bNacionalidade;
		}

		return null;
	}
}